#ifndef VL_MOVE_HPP
#define VL_MOVE_HPP

namespace vl
{

struct move_tag
{
};

template<class T>
struct move
{
	move(T& b)
	: _cont(move_tag(), b)
	{
		
	}

	move(move& b)
	: _cont(b)
	{
		
	}

	T* operator->()
	{
		return &_cont;
	}

	T& operator*()
	{
		return _cont;
	}

	T _cont;
};

}

#endif //VL_MOVE_HPP
